home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 12: Textmags & Docs / nf_archive_12.iso / MAGS / SOURCES / ATARI_SRC.ZIP / atari source / HDX_BACK / MVICON / AICON3.S < prev    next >
Encoding:
Text File  |  2001-02-09  |  3.1 KB  |  163 lines

  1.  
  2. COLBIT0    equ    $018
  3. COLBIT1    equ    $01A
  4. COLBIT2    equ    $01C
  5. COLBIT3    equ    $01E
  6. LSTLIN    equ    $020
  7. LNMASK    equ    $022
  8. WMODE    equ    $024
  9. X1        equ    $026
  10. Y1        equ    $028
  11. X2        equ    $02A
  12. Y2         equ    $02C
  13. PATPTR     equ    $02E
  14. PATMSK    equ    $032
  15. MFILL    equ    $034
  16.  
  17. ;------------------------------------------
  18. ;
  19. ; _drawicon(X,Y)
  20. ; WORD    X1         4(sp)
  21. ; WORD    Y1         6(sp)
  22. ; draw a icon in the point of (X,Y)
  23.  
  24.  
  25.         .globl    _drawicon
  26.  
  27. _drawicon:
  28.  
  29.     dc.w     $A000                ; Make line a Init call
  30.     movea.l    a0,    a3
  31.     movea.l    a1,    a4
  32.     movea.l    a2,    a5
  33.     move.w     4(sp), d3
  34.     move.w     6(sp), d5
  35.     move.w    d3,    d4
  36.     move.w    d5,    d6
  37.     addi.w     #20, d4 
  38.     addi.w     #40, d6 
  39.     jsr        _vhline1
  40.     move.w     d6, d5
  41.     move.w    d3,    d4
  42.     subi.w    #20, d3
  43.     addq.w     #5, d6 
  44.     jsr        _vhline2
  45.     move.w     d3, d4
  46.     addi.w     #60, d3 
  47.     jsr        _vhline4
  48.     move.w    d3,    d4
  49.     subi.w     #20, d3 
  50.     subq.w    #5,    d6
  51.     subi.w    #40, d5
  52.     jsr        _vhline3
  53.     rts
  54.  
  55. ;------------------------------------------
  56. ;
  57. ; _vhline(X1,Y1,X2,Y2, X3)
  58. ; WORD    X1         d3
  59. ; WORD    Y1        d4         
  60. ; WORD    X2        d3     
  61. ; WORD    Y2        d5 
  62. ; WORD    X3        d6
  63. ;
  64. ; draw a solid vertical line form (X1,Y1) to (X2,Y2)
  65. ; draw a solid horizontal line form (X1,Y1) to (X3,Y1)
  66.  
  67.  
  68.         .globl    _vhline1
  69.  
  70. _vhline1:
  71.  
  72.         move.l    a3,    d0
  73.         move.l    #$00010001, COLBIT0(a0)        ; set COLBIT variables
  74. ;move.w    #1, COLBIT1(a0)
  75.         move.l    #$00010001, COLBIT2(a0)     
  76. ;move.w    #1, COLBIT3(a0)
  77.         clr.w    LSTLIN(a0)            ; draw last pixel of line
  78.         move.l    #$FFFF0002, LNMASK(a0)    ; line style mask
  79. ;move.w    #2, WMODE(a0)         writing mode (replace)
  80.         move.w     d3, X1(a0)            ; (x1,y1) and (x2, y2) into
  81.         move.w     d5, Y1(a0)            ; appropriate variables
  82.         move.w     d3, X2(a0)
  83.         move.w     d6, Y2(a0)
  84.         dc.w    $A003                ; Arbitrary Line
  85.  
  86.  
  87.         movea.l    a4,    a1
  88.         movea.l    a5,    a2
  89.         move.w     d4, X2(a3)
  90.         move.l    #pat, PATPTR(a3)    ; pattern pointer
  91.         clr.l     PATMSK(a3)            ; Pattern length n-1=0
  92. ;clr.w     MFILL(a0)             Multiple Plane fill off
  93.         dc.w    $A004                ; Arbitrary Line
  94.         rts
  95.  
  96.         .globl    _vhline2
  97.  
  98. _vhline2:
  99.  
  100.         move.l    a3,    d0
  101.         movea.l    a4,    a1
  102.         movea.l    a5,    a2
  103.         move.w     d3, X1(a3)            ; (x1,y1) and (x2, y2) into
  104.         move.w     d5, Y1(a3)            ; appropriate variables
  105.         move.w     d3, X2(a3)
  106.         move.w     d6, Y2(a3)
  107.         dc.w    $A003                ; Arbitrary Line
  108.  
  109.  
  110.         movea.l    a4,    a1
  111.         movea.l    a5,    a2
  112.         move.w     d4, X2(a3)
  113.         dc.w    $A004                ; Arbitrary Line
  114.         rts
  115.  
  116.         .globl    _vhline3
  117.  
  118. _vhline3:
  119.  
  120.         move.l    a3,    d0
  121.         movea.l    a4,    a1
  122.         movea.l    a5,    a2
  123.         move.w     d3, X1(a3)            ; (x1,y1) and (x2, y2) into
  124.         move.w     d5, Y1(a3)            ; appropriate variables
  125.         move.w     d3, X2(a3)
  126.         move.w     d6, Y2(a3)
  127.         dc.w    $A003                ; Arbitrary Line
  128.  
  129.  
  130.         movea.l    a4,    a1
  131.         movea.l    a5,    a2
  132.         move.w     d6, Y1(a3)            ; appropriate variables
  133.         move.w     d4, X2(a3)
  134.         dc.w    $A004                ; Arbitrary Line
  135.         rts
  136.  
  137.         .globl    _vhline4
  138.  
  139. _vhline4:
  140.  
  141.         move.l    a3,    d0
  142.         movea.l    a4,    a1
  143.         movea.l    a5,    a2
  144.         move.w     d3, X1(a3)            ; (x1,y1) and (x2, y2) into
  145.         move.w     d5, Y1(a3)            ; appropriate variables
  146.         move.w     d3, X2(a3)
  147.         move.w     d6, Y2(a3)
  148.         dc.w    $A003                ; Arbitrary Line
  149.  
  150.  
  151.         movea.l    a4,    a1
  152.         movea.l    a5,    a2
  153.         move.w     d4, X1(a3)            ; appropriate variables
  154.         move.w     d6, Y1(a3)            ; appropriate variables
  155.         dc.w    $A004                ; Arbitrary Line
  156.         rts
  157.  
  158. .data
  159. pat:     dc.w    $FFFF                ; Pattern for line.
  160.  
  161.  
  162.  
  163.